package com.example.javafx.javafx.controller;

import com.example.javafx.entity.User;
import com.example.javafx.service.UserService;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TableView;
import javafx.scene.control.TextInputDialog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.client.RestTemplate;

import java.util.List;

//@Controller
//public class MainController {
//    @FXML
//    private Label messageLabel;
//
//    @Autowired // 注入 Spring 管理的服务类
//    private UserService userService;
//
//    @FXML
//    private void initialize() {
//        messageLabel.setText(userService.getWelcomeMessage());
//    }
//
//    @FXML
//    private void handleLoadData() {
//        // 调用 Spring 服务获取数据（示例）
//        List<User> users = userService.getAllUsers();
//        // 更新 UI...
//    }
//
////    public void onHelloButtonClick(ActionEvent actionEvent) {
////    }
//    @FXML
//    protected void onHelloButtonClick() {
//        messageLabel.setText("Welcome to JavaFX Application!");
//    }
//}
public class MainController {
    @FXML private TableView<User> userTable;

    private RestTemplate restTemplate = new RestTemplate();
    private ObservableList<User> users = FXCollections.observableArrayList();

    @FXML
    public void initialize() {
        userTable.setItems(users);
        loadData();
    }

    // 加载数据
    private void loadData() {
        User[] userArray = restTemplate.getForObject(
                "http://localhost:8080/api/users",
                User[].class
        );
        users.setAll(userArray);
    }

    // 添加用户
    @FXML
    private void handleAddUser() {
        TextInputDialog dialog = new TextInputDialog();
        dialog.setTitle("添加用户");
        dialog.setHeaderText("输入用户名和邮箱");
        // 添加多个输入字段（需自定义对话框）
        // ...
    }

    // 刷新数据
    @FXML
    private void handleRefresh() {
        loadData();
    }
}